// editImage.js
Page({
  data: {
    // imageList: ['/static/avatar/lbx.jpeg', '/static/background/plane.png', '/static/avatar/lbx.jpeg'],
    // imageList: [],
    imageJsonList: [],
    // bannerList: [],
    userInfo: {}
  },

  test() {
    let user = {
      id: 1,
      username: "王乐",
      bannerList: ["yqxx", "wlgq", "sxjl"]
    };
    wx.request({
      url: 'http://localhost:8282/test/requestValue',
      method: 'POST',
      data: user,
      success: (res) => {
        console.log(res.data);
      }
    })
  },
  onShow: function () {
    // this.data.userInfo = wx.getStorageSync('loginUser');//获取当前用户信息
    this.setData({
      'userInfo': wx.getStorageSync('loginUser')
      // 'bannerList': this.data.userInfo.bannerList,
      // 'imageList': this.data.userInfo.bannerList
    });
    // this.test();
  },
  chooseImage: function () {
    var that = this;
    wx.chooseMedia({
      count: 6 - this.data.userInfo.bannerList.length, // 最多可选择的文件数量
      mediaType: ['image'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        const tempFiles = res.tempFiles;
        console.log(tempFiles);
        let tempImageList = [];//临时imageList
        let tempImageJsonList = [];//临时imageJsonList
        tempFiles.forEach((item) => {
          tempImageList.push(item.tempFilePath);//用于预览
          tempImageJsonList.push(item.tempFilePath);//用于上传
        });
        this.setData({
          // 'imageList': tempImageList,//用于预览
          'imageJsonList': tempImageJsonList//用于上传
        });
        setTimeout(() => {//延时0.2秒再执行修改的方法
          this.saveImage();
        }, 200);
      },
      fail: function(){
        //未选择图片
        wx.showToast({
          title: '未上传图片',
          icon: 'error'
        });
      }
    });
  },
  
  deleteImage: function (e) {
    const index = e.currentTarget.dataset.index;//获取要删除的照片的索引
    this.data.userInfo.bannerList.splice(index, 1);//删除
    this.setData({
      'userInfo': this.data.userInfo
    });
    setTimeout(() => {//延时0.2秒再执行修改的方法
      this.updateUser();
    }, 200);
  },


  saveImage: function () {
    //对每个图片数据循环进行上传
    let imageJsonList = this.data.imageJsonList;
    // console.log("user==>", (this.data.userInfo));
    let tempUser = this.data.userInfo;
    let uploadTasks = [];
    let tempBannerList = this.data.userInfo.bannerList;
    //一个一个上传
    imageJsonList.forEach((item) => {
      // 上传背景图片到后端保存
      let uploadTask = wx.uploadFile({
        url: 'http://localhost:8282/user/uploadBgImg',
        filePath: item,
        name: 'file',
        header: { 'Content-Type': 'multipart/form-data' },
        formData: {
          'id': tempUser.id,
        },
        success: function (res) {
          var resData = JSON.parse(res.data);//wx.uploadFile回调函数返回的值是字符串，要先转为json数据
          if (resData.code == 200) {
            // 上传成功
            let banner = (resData.data.url);
            tempBannerList.push(banner);
          } else {
            wx.showToast({
              title: resData.desc,
              icon: 'none',
            })
          }
        },
        fail: function (err) {
          // 上传失败
          console.error('上传失败', err);
        }
      });
      uploadTasks.push(uploadTask);
    });
    tempUser.bannerList = tempBannerList;
    console.log("tepmUser==>", tempUser);
    this.setData({
      'userInfo': tempUser
    })
    console.log("此时user==>", this.data.userInfo);
    //等待所有图片上传完成
    Promise.all(uploadTasks).then(() => {
      setTimeout(() => {//延时0.3秒再执行修改的方法
        this.updateUser();
      }, 300); // 300毫秒等于0.3秒
    });
  },

  updateUser() {
    console.log('所有图片上传完成');
    wx.request({
      url: 'http://localhost:8282/public/updatePeople',
      method: 'POST',
      data: this.data.userInfo,
      header: {
        'content-type': 'application/json' // 指定请求的内容类型
      },
      success: (res) => {
        console.log('请求成功:', res.data);
        if (res.data.code == 200) {
          wx.setStorageSync('loginUser', res.data.data);
          console.log("上传后userInfo==>", wx.getStorageSync('loginUser'));
          this.setData({
            'userInfo': wx.getStorageSync('loginUser')
          })
          wx.showToast({
            title: '修改成功',
            icon: 'success',
            duration: 2000
          });
        }
        else {
          wx.showToast({
            title: '修改出现异常',
            icon: 'error',
            duration: 2000
          });
        }
      },
      fail: function (err) {
        // 请求失败的处理
        console.error('请求失败:', err);
        wx.showToast({
          title: '修改出现异常',
          icon: 'error',
          duration: 2000
        });
      }
    })
  }
});
